package br.com.vilababy.sigvb.mb;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.primefaces.component.tabview.Tab;
import org.primefaces.event.TabChangeEvent;

import br.com.vilababy.sigvb.SIGVBUtil;
import br.com.vilababy.sigvb.constantes.SIGVBEnum;

@ManagedBean
@ViewScoped
public class ControleAbasMBean implements Serializable {

	/**
	 * @author Diego Patrick da Silva Santos
	 */
	private static final long serialVersionUID = 1L;

	private boolean exibirAbaDadosPessoais;
	private boolean exibirAbaCamera;
	private boolean exibirAbaResponsaveis;
	private boolean exibirAbaAutorizados;
	
	//CONSTRUTOR
	public ControleAbasMBean() {
		this.exibirAbaDadosPessoais = Boolean.TRUE;
	}
	
	//GETTERS AND SETTERS
	public boolean isExibirAbaDadosPessoais() {
		return exibirAbaDadosPessoais;
	}
	public void setExibirAbaDadosPessoais(boolean exibirAbaDadosPessoais) {
		this.exibirAbaDadosPessoais = exibirAbaDadosPessoais;
	}
	public boolean isExibirAbaCamera() {
		return exibirAbaCamera;
	}
	public void setExibirAbaCamera(boolean exibirAbaCamera) {
		this.exibirAbaCamera = exibirAbaCamera;
	}
	public boolean isExibirAbaResponsaveis() {
		return exibirAbaResponsaveis;
	}
	public void setExibirAbaResponsaveis(boolean exibirAbaResponsaveis) {
		this.exibirAbaResponsaveis = exibirAbaResponsaveis;
	}
	public boolean isExibirAbaAutorizados() {
		return exibirAbaAutorizados;
	}
	public void setExibirAbaAutorizados(boolean exibirAbaAutorizados) {
		this.exibirAbaAutorizados = exibirAbaAutorizados;
	}
	
	//METODOS DE NEGOCIO
	public void onChangeCadastro(TabChangeEvent evento) {
		Tab tabAtiva = evento.getTab();
		
		switch (SIGVBEnum.getSIGVBEnum(tabAtiva.getId())) {
		case ABA_DADOS_PESSOAIS:
			this.exibirAbaDadosPessoais = Boolean.TRUE;
			this.exibirAbaCamera = Boolean.FALSE;
			this.exibirAbaResponsaveis = Boolean.FALSE;
			this.exibirAbaAutorizados = Boolean.FALSE;
			break;
		case ABA_CAMERA: 
			this.exibirAbaCamera = Boolean.TRUE;
 			this.exibirAbaDadosPessoais = Boolean.FALSE;
			this.exibirAbaResponsaveis = Boolean.FALSE;
			this.exibirAbaAutorizados = Boolean.FALSE;
			SIGVBUtil.setObjetoSessao(SIGVBEnum.ATUALIZAR_COMBO.getValor(), Boolean.TRUE);
			SIGVBUtil.atualizarComponente(SIGVBEnum.ID_COMPLETO_COMBO_ALUNO_CAMERA.getValor());
			break;
		case ABA_RESPONSAVEL:
 			this.exibirAbaResponsaveis = Boolean.TRUE;
			this.exibirAbaDadosPessoais = Boolean.FALSE;
			this.exibirAbaCamera = Boolean.FALSE;
			this.exibirAbaAutorizados = Boolean.FALSE;
			break;				
		case ABA_AUTORIZADO:
			this.exibirAbaAutorizados = Boolean.TRUE;
			this.exibirAbaResponsaveis = Boolean.FALSE;
			this.exibirAbaDadosPessoais = Boolean.FALSE;
			this.exibirAbaCamera = Boolean.FALSE;
			break;
		default:
			break;
		}
	}
	
	public void onChangePesquisa(TabChangeEvent evento) {
		Tab tabAtiva = evento.getTab();
		
		switch (SIGVBEnum.getSIGVBEnum(tabAtiva.getId())) {
		case ABA_DADOS_PESSOAIS:
			this.exibirAbaDadosPessoais = Boolean.TRUE;
			this.exibirAbaCamera = Boolean.FALSE;
			this.exibirAbaResponsaveis = Boolean.FALSE;
			break;
		case ABA_CAMERA: 
			this.exibirAbaCamera = Boolean.TRUE;
			this.exibirAbaDadosPessoais = Boolean.FALSE;
			this.exibirAbaResponsaveis = Boolean.FALSE;
			break;
		case ABA_RESPONSAVEL:
 			this.exibirAbaResponsaveis = Boolean.TRUE;
			this.exibirAbaDadosPessoais = Boolean.FALSE;
			this.exibirAbaCamera = Boolean.FALSE;
			break;				
		case ABA_AUTORIZADO:
			this.exibirAbaResponsaveis = Boolean.TRUE;
			break;
		default:
			break;
		}
	}
	
}